from 封装性 import Animal

class Cat(Animal):

    def __init__(self, name, age):
        super().__init__(name, age)

    def speak(self):    # 重写方法
        print(f"{self.name},喵喵叫")


class Dog(Animal):
    def __init__(self, name, age):
        super().__init__(name, age)

    def speak(self):
        print(f"{self.name},汪汪汪！")

    def eat(self, food):
        self._stomach = food    # 访问保护变量
        print(f"{self.name}吃了{food}")

    def print(self):
        print(self._stomach)

    def print_money(self):
        print(self.__money)

    def __del__(self):      # 析构方法
        print(f"{self.name}被删除了。")

cat1 = Cat("小白", 1)
cat1.speak()

dog1 = Dog("小黑", 2)
dog1.speak()    # 多态性
# dog1.print_money()
dog1.print()

print(dir(dog1))    # 查看一个对象的所有内容

"""
封装性：私有变量
继承性：从父类继承
多态性：调用同一个方法，有不同结果

受保护变量 可以在子类访问
私有变量 不可以在子类访问
"""